(in-package :TRAPS)
; Generated from #P"macintosh-hd:hd3:CInterface Translator:Source Interfaces:param.h"
; at Sunday July 2,2006 7:27:05 pm.
; 
;  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
;  *
;  * @APPLE_LICENSE_HEADER_START@
;  * 
;  * The contents of this file constitute Original Code as defined in and
;  * are subject to the Apple Public Source License Version 1.1 (the
;  * "License").  You may not use this file except in compliance with the
;  * License.  Please obtain a copy of the License at
;  * http://www.apple.com/publicsource and read it before using this file.
;  * 
;  * This Original Code and all software distributed under the License are
;  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
;  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
;  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
;  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
;  * License for the specific language governing rights and limitations
;  * under the License.
;  * 
;  * @APPLE_LICENSE_HEADER_END@
;  
; -
;  * Copyright (c) 1990, 1993
;  *	The Regents of the University of California.  All rights reserved.
;  * (c) UNIX System Laboratories, Inc.
;  * All or some portions of this file are derived from material licensed
;  * to the University of California by American Telephone and Telegraph
;  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
;  * the permission of UNIX System Laboratories, Inc.
;  *
;  * Redistribution and use in source and binary forms, with or without
;  * modification, are permitted provided that the following conditions
;  * are met:
;  * 1. Redistributions of source code must retain the above copyright
;  *    notice, this list of conditions and the following disclaimer.
;  * 2. Redistributions in binary form must reproduce the above copyright
;  *    notice, this list of conditions and the following disclaimer in the
;  *    documentation and/or other materials provided with the distribution.
;  * 3. All advertising materials mentioning features or use of this software
;  *    must display the following acknowledgement:
;  *	This product includes software developed by the University of
;  *	California, Berkeley and its contributors.
;  * 4. Neither the name of the University nor the names of its contributors
;  *    may be used to endorse or promote products derived from this software
;  *    without specific prior written permission.
;  *
;  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
;  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
;  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
;  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
;  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
;  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
;  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
;  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
;  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
;  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
;  * SUCH DAMAGE.
;  *
;  *	@(#)param.h	8.1 (Berkeley) 4/4/95
;  
; 
;  * Machine dependent constants for Intel 386.
;  
; #ifndef _I386_PARAM_H_
; #define _I386_PARAM_H_
; 
;  * Round p (pointer or byte index) up to a correctly-aligned value for all
;  * data types (int, long, ...).   The result is u_int and must be cast to
;  * any desired pointer type.
;  
(defconstant $ALIGNBYTES 3)
; #define	ALIGNBYTES	3
; #define	ALIGN(p)	(((u_int)(p) + ALIGNBYTES) &~ ALIGNBYTES)
(defconstant $NBPG 4096)
; #define	NBPG		4096		/* bytes/page */
(defconstant $PGOFSET 4095)
; #define	PGOFSET		(NBPG-1)	/* byte offset into page */
(defconstant $PGSHIFT 12)
; #define	PGSHIFT		12		/* LOG2(NBPG) */
(defconstant $DEV_BSIZE 512)
; #define	DEV_BSIZE	512
(defconstant $DEV_BSHIFT 9)
; #define	DEV_BSHIFT	9		/* log2(DEV_BSIZE) */
(defconstant $BLKDEV_IOSIZE 2048)
; #define BLKDEV_IOSIZE	2048
(defconstant $MAXPHYS 65536)
; #define	MAXPHYS		(64 * 1024)	/* max raw I/O transfer size */
(defconstant $STACK_GROWS_UP 0)
; #define	STACK_GROWS_UP	0		/* stack grows to lower addresses */
(defconstant $CLSIZE 1)
; #define	CLSIZE		1
(defconstant $CLSIZELOG2 0)
; #define	CLSIZELOG2	0
; 
;  * Constants related to network buffer management.
;  * MCLBYTES must be no larger than CLBYTES (the software page size), and,
;  * on machines that exchange pages of input or output buffers with mbuf
;  * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
;  * of the hardware page size.
;  
(defconstant $MSIZE 256)
; #define	MSIZE		256		/* size of an mbuf */
(defconstant $MCLBYTES 2048)
; #define	MCLBYTES	2048		/* large enough for ether MTU */
(defconstant $MCLSHIFT 11)
; #define	MCLSHIFT	11
(defconstant $MCLOFSET 2047)
; #define	MCLOFSET	(MCLBYTES - 1)
; #ifndef NMBCLUSTERS
; #ifdef GATEWAY
#| #|
#define NMBCLUSTERS	((1024 * 1024)  MCLBYTES)	
|#
 |#

; #else
(defconstant $NMBCLUSTERS 256)
; #define	NMBCLUSTERS	((1024 * 512) / MCLBYTES)	/* cl map size: 0.5MB */

; #endif


; #endif

; 
;  * Some macros for units conversion
;  
;  Core clicks (NeXT_page_size bytes) to segments and vice versa 
; #define	ctos(x)	(x)
; #define	stoc(x)	(x)
;  Core clicks (4096 bytes) to disk blocks 
; #define	ctod(x)	((x)<<(PGSHIFT-DEV_BSHIFT))
; #define	dtoc(x)	((x)>>(PGSHIFT-DEV_BSHIFT))
; #define	dtob(x)	((x)<<DEV_BSHIFT)
;  clicks to bytes 
; #define	ctob(x)	((x)<<PGSHIFT)
;  bytes to clicks 
; #define	btoc(x)	(((unsigned)(x)+(NBPG-1))>>PGSHIFT)
; #ifdef __APPLE__
; #define  btodb(bytes, devBlockSize)                 ((unsigned)(bytes) / devBlockSize)
; #define  dbtob(db, devBlockSize)                    ((unsigned)(db) * devBlockSize)
#| 
; #else
; #define	btodb(bytes)	 		/* calculates (bytes / DEV_BSIZE) */ 	((unsigned)(bytes) >> DEV_BSHIFT)
; #define	dbtob(db)			/* calculates (db * DEV_BSIZE) */ 	((unsigned)(db) << DEV_BSHIFT)
 |#

; #endif

; 
;  * Map a ``block device block'' to a file system block.
;  * This should be device dependent, and will be if we
;  * add an entry to cdevsw/bdevsw for that purpose.
;  * For now though just use DEV_BSIZE.
;  
; #define	bdbtofsb(bn)	((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
; 
;  * Macros to decode (and encode) processor status word.
;  
; #define STATUS_WORD(rpl, ipl)	(((ipl) << 8) | (rpl))
; #define	USERMODE(x)		(((x) & 3) == 3)
; #define	BASEPRI(x)		(((x) & (255 << 8)) == 0)

; #if	defined(KERNEL) || defined(STANDALONE)
#| 
; #define	DELAY(n) delay(n)
 |#

; #else	/* defined(KERNEL) || defined(STANDALONE) */
; #define	DELAY(n)	{ register int N = (n); while (--N > 0); }

; #endif	/* defined(KERNEL) || defined(STANDALONE) */


; #endif /* _I386_PARAM_H_ */


(provide-interface "param")